﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<stdbool.h>


//int findGCD(int* nums, int numsSize) {
//	int max = nums[0];
//	int min = nums[0];
//	int i = 0;
//	for (i = 1; i < numsSize; i++)
//	{
//		if (nums[i] > max)
//		{
//			max = nums[i];
//		}
//		if (nums[i] < min)
//		{
//			min = nums[i];
//		}
//	}
//	while (max && min)
//	{
//		max %= min;
//		min -= max;
//	}
//	if (min == 0)
//		return max;
//	return min;
//}

//bool isSameAfterReversals(int num) {
//	if (nums == 0)
//		return true;
//	if (nums % 10 == 0)
//		return false;
//	return true;
//}

//给你一个字符串 s ，根据下述规则反转字符串：
//
//int my_isalpha(s)
//{
//	if ((s >= 'a' && s <= 'z') || (s >= 'A' && s <= 'Z'))
//		return 1;
//	return 0;
//}
//
//char* reverseOnlyLetters(char* s) {
//	int len = strlen(s);
//	int left = 0;
//	int right = len - 1;
//	while (left < right)
//	{
//		if (my_isalpha(s[left])==0)
//		{
//			left++;
//			continue;
//		}
//		if (my_isalpha(s[right]) == 0)
//		{
//			right--;
//			continue;
//		}
//		if (left < right)
//		{
//			char tmp = s[left];
//			s[left] = s[right];
//			s[right] = tmp;
//			left++;
//			right--;
//		}
//	}
//	return s;
//}
//int main()
//{
//	char ch[] = "__s2,_";
//	reverseOnlyLetters(ch);
//	printf("%s\n", ch);
//	return 0;
//}

//给你两个整数，n 和 start 。
//数组 nums 定义为：nums[i] = start + 2 * i（下标从 0 开始）且 n == nums.length 。
//请返回 nums 中所有元素按位异或（XOR）后得到的结果。
//最简单的题之一。
//int xorOperation(int n, int start) {
//	int sum = start;
//	while (--n)
//	{
//		sum ^= start + 2 * n;
//	}
//	return sum;
//}

//给你一个字符串 s 和一个 长度相同 的整数数组 indices 。
//请你重新排列字符串 s ，其中第 i 个字符需要移动到 indices[i] 指示的位置。
//返回重新排列后的字符串。
//char* restoreString(char* s, int* indices, int indicesSize) {
//	int i = 0;
//	char* p1 = (char*)malloc(indicesSize + 1);
//	for (i = 0; i < indicesSize; i++)
//	{
//		p1[indices[i]] = s[i];
//	}
//	p1[i] = '\0';
//	return p1;
//}

//把一个数组最开始的若干个元素搬到数组的末尾，我们称之为数组的旋转。
//给你一个可能存在 重复 元素值的数组 numbers ，它原来是一个升序排列的数组，并按上述情形进行了一次旋转。
//请返回旋转数组的最小元素。
//例如，数组 [3, 4, 5, 1, 2] 为[1, 2, 3, 4, 5] 的一次旋转，该数组的最小值为 1。  
//注意，数组[a[0], a[1], a[2], ..., a[n - 1]] 旋转一次 的结果为数组[a[n - 1], a[0], a[1], a[2], ..., a[n - 2]] 。
//
//int minArray(int* numbers, int numbersSize) {
//	int i = 0;
//	for (i = numbersSize - 1; i >= 1; i--)
//	{
//		if (numbers[i] >= numbers[i - 1])
//		{
//			continue;
//		}
//		break;
//	}
//	return numbers[i];
//}